Skip to content

Dynamisches Umschalten des Universe per msg.universe#13

Merged
mutec merged 2 commits into
mainfrom
feat/sacn-in-dynamic-universe
Jul 12, 2026
Merged

Dynamisches Umschalten des Universe per msg.universe#13
mutec merged 2 commits into
mainfrom
feat/sacn-in-dynamic-universe

Conversation

@mutec

@mutec mutec commented Jul 10, 2026

Copy link
Copy Markdown
Member

Was & Warum

Der sacn-in-Node beobachtete bisher ein fest konfiguriertes Universe und hatte keinen Eingang. Dieser PR erlaubt es, das beobachtete Universe zur Laufzeit per Nachricht zu wechseln — ohne Redeploy.

Änderungen

  • init.ts: inputs: 0inputs: 1 (Node bekommt einen Eingang, rückwärtskompatibel).
  • sacn-in.ts: neuer input-Handler. Bei msg.universe (Integer 163999):
    • removeUniverse(alt) + addUniverse(neu) (von der sacn-Lib bereitgestellt, inkl. Multicast-Membership),
    • verwirft den Cache des alten Universe,
    • aktualisiert den Node-Status (Universe N).
    • Ungültige/fehlende Werte → warn + ignoriert; unverändertes Universe → No-op.
  • docs.html: neuer Inputs-Abschnitt für msg.universe.
  • Enthält außerdem den zuvor erstellten Docs-Commit (Editor-Hilfeseiten für alle Nodes), der noch nicht am Remote war.

Verifikation

  • npm run build / tsc fehlerfrei, eslint sauber, Prettier angewandt.
  • Kompiliertes JS enthält die vollständige Wechsel-Logik.
  • Kein Live-Test in einer laufenden Node-RED-Instanz (bräuchte sendende sACN-Gegenstelle).

@mutec
mutec force-pushed the feat/sacn-in-dynamic-universe branch 3 times, most recently from a7cbe69 to f1d8dea Compare July 11, 2026 12:27
@mutec mutec changed the title feat(sacn-in): dynamisches Umschalten des Universe per msg.universe Dynamisches Umschalten des Universe per msg.universe Jul 11, 2026
Add an input to the sacn-in node so the observed universe can be changed
at runtime. On an incoming msg.universe (integer 1-63999) the node stops
listening on the current universe (removeUniverse) and starts listening on
the new one (addUniverse), drops the stale cache and updates the node
status. Invalid values warn and are ignored; an unchanged value is a no-op.

Document the new input in docs.html and rebuild dist.
@mutec
mutec force-pushed the feat/sacn-in-dynamic-universe branch from f1d8dea to 0084206 Compare July 11, 2026 21:38
Introduce an output trigger that is independent of the merge mode:
- changes: emit only when values change
- always: emit on every received sACN packet, even without a change
- interval: emit on change and, as a keepalive, re-emit the full universe
  when no change arrives within a configurable interval (default 1000 ms)

Existing nodes without the field keep their previous behaviour
(passthrough=always, htp/ltp=changes).

Add clearOnUniverseChange: on a runtime msg.universe switch, optionally emit
a full zeroed universe for the new universe until real data arrives.

The full universe state is now always cached internally (needed for the
keepalive and the blanking), the keepalive timer is cleared on close, and
the interval field is shown only for the interval trigger. Rebuild dist.
@mutec
mutec merged commit c66123b into main Jul 12, 2026
12 checks passed
@mutec
mutec deleted the feat/sacn-in-dynamic-universe branch July 12, 2026 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant